

package com.hazelcast.internal.locksupport;

import com.hazelcast.internal.services.ObjectNamespace;
import com.hazelcast.internal.util.ConstructorFunction;

import java.util.Collection;

public interface LockSupportService {

    String SERVICE_NAME = "hz:impl:lockService";

    void registerLockStoreConstructor(String serviceName, ConstructorFunction<ObjectNamespace, LockStoreInfo> constructorFunction);

    LockStore createLockStore(int partitionId, ObjectNamespace namespace);

    void clearLockStore(int partitionId, ObjectNamespace namespace);

    Collection<LockResource> getAllLocks();

    long getMaxLeaseTimeInMillis();
}
